package com.fy.fyspace.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fy.fyspace.model.entity.UserBehaviorIncrement;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * 用户行为增量Mapper接口
 * 设计模式：数据访问对象模式
 * 作用：提供用户行为增量数据的数据库操作接口
 */
@Mapper
public interface UserBehaviorIncrementMapper extends BaseMapper<UserBehaviorIncrement> {
    
    /**
     * 批量插入行为增量数据
     * 
     * @param behaviorList 行为数据列表
     * @return 影响行数
     */
    int batchInsert(@Param("list") List<UserBehaviorIncrement> behaviorList);
    
    /**
     * 查询未处理的行为增量数据
     * 
     * @param limit 限制数量
     * @return 行为增量数据列表
     */
    List<UserBehaviorIncrement> selectUnprocessedBehaviors(@Param("limit") Integer limit);
    
    /**
     * 标记行为数据为已处理
     * 
     * @param ids ID列表
     * @return 影响行数
     */
    int markAsProcessed(@Param("ids") List<Long> ids);
    
    /**
     * 根据时间范围查询行为数据
     * 
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 行为数据列表
     */
    List<UserBehaviorIncrement> selectByTimeRange(@Param("startTime") Date startTime, 
                                                  @Param("endTime") Date endTime);
} 